home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
com
/
uucp
/
uucico
/
uucico_g.doc
< prev
next >
Wrap
Text File
|
1992-10-20
|
23KB
|
438 lines
Kurzanleitung zum UUCICO
------------------------
Jan Willamowius, 11.3.91
------------------------
Dieser UUCICO ist so umgeschrieben, dass er auch gepollt werden kann.
Ausserdem sind kleine Aenderungen im Handschaking, der Verwaltung der
Debugging-Level und eine Messung des Datendurchsatz dazugekommen.
Der UUCICO basiert auf dem MailTruck Version 1.1 von John Logajan. John
Logajan hat mir kuerzlich bestaetigt (Juli 90), dass diese Version des
MailTruck immer noch die aktuelle ist. Er wurde von Rodney Volz erweitert,
dass er mit dem Mercury UUCP zusammenarbeitet. Die 2. Richtung des
Protokolls und alle weiteren Aenderungen ab Version 2.0 habe ich zusamen
mit Carsten Lutz eingebaut.
Diese Version ist voll kompatibel zu den alten Versionen des UUCICO im
Mercury UUCP und sollte anstelle dieser verwendet werden, auch wenn man
nicht gepollt werden will.
Wer gepollt werden will muss den getty von Carsten Lutz verwenden, der
auf Anrufe wartet, das Login erledigt und dann den UUCICO aufruft.
Diese Version des UUCICO ermoeglicht es erstmals Files von anderen Rechnern
mittels uucp oder uuto geschickt zu bekommen, ohne Gefahr zu laufen, dass
ein ungueltiger Pfadname uebertragen wird und der UUCICO abstuerzt.
Aus eingehenden Dateinamen werden alle Ordner-Verweise entfernt. Die
Datei wird dann unter den reinen Dateinamen in Mqueue abgelegt und kann
dann an den gewuenschte Platz kopiert werden. Falls der Dateiname mehr
als einen Punkt beinhaltet werden alle Punkte bis auf den letzten durch
Unterstriche erstetzt.
Falls der Dateiname einer eingehenden Datei schon im Mqueue existiert,
wird ein anderer zufaellig gewaehlt. Dieser hat bei .D und .X Dateien
immer noch diese Endung wird beim Auspacken der News aber wegen des neuen
Namens nicht gefunden. Hier muss dann von Hand eingegriffen werden. Dieser
Fall ist allerdings recht selten.
Auch Anonymous-UUCP ist mit dieser Version des UUCICO nun moeglich; d.h.
auch R-Komandos werden jetzt verarbeitet.
Wer Bugs o.ae. findet gibt mir bitte bescheid damit ich sie ausbauen kann.
Jan Willamowius
Nienredder 6
2000 Hamburg 54
Tel 040 / 54 24 42
E-Mail: jan@janhh.hanse.de
Versionen:
Mailtruck 1.0 urspruengliche Version von John Logajan
Mailtruck 1.1 leicht verbesserter Mailtruck
UUCICO von Rodney Volz fuer das Mercury-Paket (diverse Versionen)
UUCICO 2.0 auch fuer Indials von Jan Willamowius und Carsten Lutz
UUCICO 2.1 kleine Verbesserungen
UUCICO 2.3 Ausgabe der Versionsnummer
UUCICO 2.4 Debugging-Levels mit Messung des Datendurchsatz, Ausgabe
der Versionsnummer, Exit-Code <> 0 bei erfolglosem Abbruch,
Ausgabe von CONNECT bei Direkt-Links
UUCICO 2.5 nachfolgende Programme stuerzen nicht mehr ab, dafuer aber
ohne Exit-Code
UUCICO 2.6 DTR wird beim Programmstart gesetzt
UUCICO 2.7 jetzt wieder mit Exitcode und hoffentlich ohne Seiteneffekte,
DTR wird beim Programmstart auf HIGH gesetzt
UUCICO 2.8 einige Fehlermeldungen jetzt im Klartext (statt Internal
Error No. X) und Datumsformat im Logfile an den Hamburger
Standard angepasst
UUCICO 2.9 beim Fehler-Abbruch wird +++ATH0 jetzt frueher gesendet
beim Handshaking wird jetzt (wie im g-Protokoll vorgesehen)
ein Nullbyte am Ende des Strings gesendet
UUCICO 2.91 wartet auch noch auf = nach Shere; wartet 10/50 sec nach
erkennen des Nametrigger, bevor er den eigenen Usernamen
sendet
UUCICO 2.92 Es wird am Anfang der Session kein ATZ mehr ans Modem
gesendet, sondern nur noch das, was in der hosts-datei als
Modem-Init drin steht (dort sollte man ATZ reinschreiben)
UUCICO 2.93 wartet nicht mehr auf = nach Shere, da Version 7 Unix und
alle Abarten davon kein = senden; Wartezeit von 10/50 auf
20/50 sec nach Nametrigger verlaengert
UUCICO 2.95 Bugfix: manchmal konnte man das Passwort auf dem Bildschirm
sehen; minimale Aenderungen im Protokoll um nach Fehlern
besser aufzusetzen
UUCICO 2.96 Name der Gegenstelle wird ins Logfile geschrieben; Bugfix:
jetzt nicht immer Returncode 1, wenn man gepollt wird
UUCICO 2.97 Bugfix von 2.96 gefixed: Es wird jetzt nicht immer 1
zurueckgegeben, sondern ein Returncode, der bei rausgehenden
Polls erfolgsabhaengig und bei reinkommenden immer 1 ist.
Man kann nun RTS/CTS anschalten, indem man an das Baudraten-
feld der entsprechenden Siteeintraege im hosts-File ein 'r'
oder '/r' anhaengt. XON/XOFF ist nicht moeglich, da es sich
nicht mit dem UUCP-g-Protokoll vertraegt. RTS/CTS ist bei
einigen TOS-Versionen allerdings fehlerhaft.
Enthaelt der Initstring fuer das Modem zu Anfang die Zeichen-
folge "atz", so wird zuerst nur ein atz ans Modem gesandt
und dann der Rest der Zeichenkette mit einem vorgeschaltetem
at. Diese Massnahme war noetig, weil einige Modems ( z.B.
Traily ) nach einem atz keine weiteren Befehle mehr
akzeptieren. - Carsten Lutz
UUCICO 3.00 anonymous UUCP und Requests implementiert. Da es momentan
kein vernuenftiges UUCP-Programm gibt, hier die Syntax fuer
Filerequest-Zeilen in .C-Files:
R source dest sender Options data(unused here) mode
Beispiel:
R /usr/spool/uucppublic/README ~/readme gmaster - D.0 666
In den Feldern source und dest steht die Tilde fuer das
uucppublic-Directory. Das lokale uucppublic-Directory kann dem
uucico als optionales 16.Feld im \uucico.par uebergeben werden.
Geschieht das nicht, so wird angenommen, dass sich uucppublic
im selben subdirectory wie die mailqueue befindet. Bei
Outdials wird jeder Path im dest-Feld akzeptiert. Laesst sich
das File jedoch ( z.B. wegen eines falschen Path ) nicht
erzeugen, so wird es unter uucppublic angelegt. Aus diesem
Grunde *MUSS* bei Requests zwingend ein uucppublic-Directory
vorhanden sein, ansonsten werden keine Requests rausgeschickt.
Bei ankommenden requests wird das dest-Feld ignoriert. Beim
Source-Feld wird der gesamte Path abgeschnitten und der des
uucppublic-Verzeichnisses davergehaengt, per default wird also
*immer* aus diesem Directory requestet. Moechte man noch
andere Directorys freigeben, so kann man im uucppublic eine
Datei pubdir erzeugen, in der in jeder Zeile ein einzelnes,
ebenfalls freigeschaltetes Directory stehen darf. Einen Pfad
direkt anzugeben ist jedoch auch hier unsinnig. Es wird
zuerst nachgesehen, ob das File im uucppublic existiert und
wenn das nicht der Fall ist werden die in pubdir angegebenen
Pfade durchgesucht.
Anonymous UUCP funktioniert bei Outdials wie ein normaler
Poll, nur das halt andere Loginnamen und Passwoerter verwendet
werden. Will man per Indial AnnoUUCP erlauben, so muss dem
UUCICO neben den normalen Daten als Remote-Sitename NUUCP
uebergeben werden !!! Der tatsaechliche Remote-Sitename wird
dann waehrend der Init-Sequenz erfragt. Bei annonymous UUCP
Indials wechselt der UUCICO nie in den Master-Mode.
( - Carsten Lutz )
UUCICO 3.01 Verbesserte Bildschirmausgabe der Protokol-Handshaking. Man
kann nun auch sehen welche Protokolle die Gegenstelle ausser
dem g-Protokol anzubieten hat. (nur Nutzen kann man sie im
Moment leider noch nicht)
Bugfix: Wenn nur ATZ als Modeminit angegeben wird, wird nun
nicht mehr zusaetzlich ein AT gesendet.
UUCICO 3.03 Bugfix: Die Error-recovery war ca. seit Version 2.9 defekt,
funktioniert nun wieder. Wenn unter dem Namen, der in der
13. Zeile des UUCICO.PAR als Logfile angegeben wurde ein
Ordner existiert ( wie bei mercury ueblich ), dann wird
<13.Zeile>\uucico als Logfile benutzt.
Es wird nach einem Poll jetzt immer die gesamte uebertragene
Datenmenge sowie die benoetigte Zeit und der Durchsatz ins
Logfile geschrieben.
Am unteren Bildschirmrand wird ab jetzt in einer Statuszeile
angezeigt, wie lange die Verbindung zum remote-host schon
existiert, so dass man ggf. eine Einheit noch gut nutzen kann,
wenn man einen Poll abbrechen will. Bei Verbindungen >=9600bps
wird die Statusanzeige aus Geschwindigkeitsgruenden nur alle
10 sec. upgedatet, bei bpsraten <9600 jede Sekunde. Bei Farb-
bildschirmen ( Igitt ) erscheint keine Statuszeile.
- Carsten Lutz
UUCICO 3.1 Umfangreiche interne Umstrukturierungen um die Verwendung
anderer Protokolle zu ermoeglichen. (das e-Protokoll ist
halb-fertig)
Redials werden auch bei 'NO CARRIER' durchgefuehrt, da
bei vielen Modems die BUSY Erkennung wohl im Argen liegt.
Kleine Aenderungen an der Statuszeile und noch ein paar
Kleinigkeiten mehr die Carsten vergessen hat mir zu
erzaehlen.
UUCICO 3.2 Beta-Test Version: nicht oeffentlich
UUCICO 3.21 Das Anlegen des Logfiles funktioniert nun sowohl bei Mercury-
UUCP, als auch bei Hermes und anderen Instalationen nach dem
"Hamburger Standard".
Es wird die Baudrate der tatsaechlichen Verbindung angezeigt
und nicht mehr die der Verbindung Modem/Rechner.
Direkte Verbindungen zwischen Rechnern funktionieren jetzt
(sehr schoener Durchsatz!).
Verstaendigungsprobleme, die manchmal beim Verbindungsabbau
auftraten, sind nun behoben. Die CLOSE-Message wurde leicht
korrigiert.
Falls eine zu bertragende Datei schon existiert wird die
existierende Datei umbenannt, damit beim 2. Anlauf nach
einer abgebrochenen Uebertragung die heile Datei den
richtigen Namen hat. Bei Filetransfers per UUCP wird aus
Sicherheitsgruenden weiterhin die neu ankomende Datei
umbenannt.
Die Statuszeile sollte jetzt in allen Aufloesungen, die
die negativen Line-A Variablen benutzen korrekt laufen.
Ausgaben die laenger sind als die Bildschirmbreite werden
abgeschnitten. (tritt wohl nur in der geringen ST
Aufloesung auf)
Der Puffer der seriellen Schnittstelle wird beim Terminieren
des UUCICO auf den urspruenglichen Wert zurueckgesetzt.
UUCICO 3.3 Implementierung des schnellen uucp e Protokolls.
Voraussetzung ist eine Verbindung mit Fehlerkorrektur
(V.42, MNP), sonst gibt es garantiert Datenverlust.
Funktionierendes RTS/CTS am ST ist bei Geschwindigkeiten
ab 9600bps sehr ratsam.
Default Protokoll ist weiterhin das g Protokoll
Das e Protokoll wird mit einem 'e' am Ende der Telefon-
nummer im (x)host Files aktiviert. Im Serverbetrieb
werden g+e unterstuetzt. Weiteres:
- bessere Bildschirmausgabe
- soll mit MINT0.94 im Vordergrundbetrieb laufen
- Probleme beim STE koennen durch Abschalten des Caches
oder Runterschalten auf 8 MHz geloest werden.
- Probleme beim Pollen bei einen PC mit FAS Device Treiber.
-> umschalten auf das g Protokoll oder FAS Treiber
wechseln.
- einige nuucp's verlangen ein CR als Passwort. Das wird
durch den Eintrag ..|\n|.. im (x)hosts Files erzeugt.
- arbeitet ohne FIX24.TTP auf dem TT
UUCICO 3.4 Einige Bugs beseitigt:
- Allozierte Speicherbloecke werden wieder freigegeben
- Kanal-Handling (BIOS) fuer Ausgabe ueber RS232 ge-
aendert (wegen MiNT).
- Es werden keine Zeichen mehr per BIOS direkt auf den
Screen ausgegeben; dadurch kann die Ausgabe etwa in
eine Datei umgelenkt werden (bei bg-Betrieb unter MiNT).
- Einige GFA-Befehle durch Gemdos() ersetzt und kleinere
kritische Routinen ueberarbeitet.
Die Status-Zeile wird nur noch ausgegeben, falls der uucico
bei einer Aufloesung von 640*400 arbeitet (ST-Modus); ande-
renfalls werden einige - nicht alle - Ausgaben normal auf
den Screen ausgegeben. Diese Anpassung erfolgt speziell
fuer den Betrieb auf TT-Rechnern. Beim Direkt-Aufruf kann
mit '-f' die Status-Ausgabe ganz ausgeschaltet werden.
Zeit-optimiertes e-proto. Waehrend receive/send von Files
via e-proto werden keine Status-Angaben gemacht. Es werden
zusaetzlich ca. 122 kb RAM alloziert.
Wird der uucico nicht direkt aufgerufen (sondern, wie
bisher etwa via uupoll etc.), wird die Angabe ueber ReDials
vorzugsweise aus den ENV-Variablen REDIAL uebernommen.
Die Angabe des Protokolls hinter der Telefonnummer muss
nun _unbedingt_ korrekt erfolgen: Also 'e' fuer e-proto.
Es wurden Grade implementiert. Die Grade werden nur beim
direkten Aufruf des uucico ausgewertet. Als Grade kann
eine Zahl von 0-9 oder Buchstaben a-z, A-Z uebergeben
werden.
Der uucico kann jetzt alternativ auch direkt aufgerufen
werden. Existiert im Home-Dir keine Datei 'uucico.par',
werden die erforderlichen Angaben aus der Command-Zeile
ausgewertet bzw. aus dem Environment ausgelesen. Die
Parameter fuer den Direkt-Aufruf:
-s[pollsite] -p[proto] -r[redials] -v[grade] -x[debug] -f
Der uucico uebernimmt weitere Daten aus der hosts-Datei.
Dazu wird im ENV nach der Variablen HOSTS gesucht.
Der uucico prueft vor Beginn des Waehlvorgangs, ob ein
Anruf anliegt und terminiert gegebenenfalls. Die Modem-
Meldung NO DIALTONE wird ausgewertet.
Bei Betrieb mit schnellen Geschwindigkeiten (>= 9600)
und Verwendung des e-proto auf Mega-STE-Rechnern wird
geraten, auf 16 Mhz und Cache ON (!) zu schalten.
Umstellung des Handlings beim Empfang von Files, deren
Filenamen (TOS-Begrenzung auf 8 Zeichen UpperCase). Das
zu empfangende File wird ggfs. unter einem neuen Namen
empfangen - das anschliessend empfangene *.X-File wird
daraufhin ggfs. angepasst.
Wird der Empfang vorzeitig abgebrochen, hat das zu em-
pfangende File in der $MAILQ (\usr\spool\mqueue\a*.d)
ueblicherweise eine Filelaenge von 0 Byte. Beim termi-
nieren wird die $MAILQ auf 0-Byte-Dateien untersucht
und diese ggfs. geloescht.
UUCICO 3.42 Fehler bei Anpassung von *.X-Files (s.o.) behoben.
Bei Aufruf mit 'uucico.par' wird $REDIAL nicht mehr
defaultmaessig ausgewertet - alle Daten werden aus
'uucico.par' uebernommen.
Die gemeldeten Probleme bei der Zusammenarbeit mit
den verschiedenen uupoll-Implementationen wurden be-
hoben.
Eine Pruefung auf einen 'verlorenen' Carrier findet
nicht mehr statt, so dass der uucico auch ueber den
seriellen Port am Mega-STE/TT betrieben werden kann.
Es werden auch ENV-Variablen mit '/' statt '\' als
Pfadangaben korrekt ausgewertet.
Wird der uucico unter MiNT/MTOS gestartet terminiert
der uucico, falls bereits aktiv.
Beim Anwahlstring wird nicht nur ein 'ATZ' sondern bspw.
auch ein 'ATZ4' korrekt ausgewertet und gesondert an das
Modem gesandt. Meldet das Modem ein NO CARRIER bei einem
Anwahlversuch, terminiert der uucico um moegliche Fehl-
verbindungen zu vermeiden.
Sonstige nicht erwaehnenswerte kleinere Anpassungen, die
von Beta-Testern gewuenscht wurden.
UUCICO 3.43 Auf diverse Anregungen hin wurden einige kleinere Ver-
aenderungen vorgenommen etwa beim Test auf freien Speicher
vor Start des Poll-Vorgangs.
Neue Parameter bei Direktaufruf des uucico:
-W[Sekunden] Wartezeit in Sekunden bei Wahlwieder-
holung
-D[Kilobyte] Reservierter HD-Speicher in Kilobyte, der
nicht unterschritten werden darf. Verindert
zumindest beim pollen, dass die Harddisk
ueberlaeuft. Der uucico bricht den Empfang
von Files ab, falls auf der Harddisk dieses
Limit unterschritten wird.
- Lutz Petersen -
Das Format von UUCICO.PAR
-------------------------
Fuer diejenigen, die den UUCICO gerne in eine eigene Mailbox o.ae.
integrieren moechten wird der GETTY kaum geeignet sein. Man kann sich
jedoch mit einer kleinen Aenderung im Mailbox-Programm und einem direkten
Aufruf des UUCICO helfen. Nachdem die Mailbox das Login mit Passwortabfrage
erledigt hat, muss sie feststellen, ob es sich um eine pollende Site
handelt. Es ist wichtig, dass die login-Sequenz der Mailbox nicht erst
auf einen Tastendruck, Return o.ae. wartet, weil sich eine UUCP Site
automatisch einlogged und beim Loginscript nur begrentzte Moeglichkeiten
hat.
Handelt es sich beim Anruffer um eine UUCP Site legt die Mailbox im
Hauptverzeichniss des aktuellen Laufwerks die Datei UUCICO.PAR an und
macht ein Pexec() auf den UUCICO.
UUCICO.PAR ist eine normale Textdatei. Jede Zeile enthaelt eine Information,
einen Pfad o.ae. Der Inhalt unterscheidt natuerlich ein wenig, wenn man
angerufen wird oder wenn man jemanden anrufen moechte.
1. Zeile: eigener Sitename
2. Zeile: Sitename der anrufenden Site bzw. der anzurufenden Site
3. Zeile: Modeminitstring
4. Zeile: Baudrate (wenn die Baudrate erkannt wird, wird diese gesetzt;
anderenfalls wird die aktuelle Einstellung beibehalten)
Folgenden Baudraten werden erkannt: 300,1200, 2400,3600,4800,
9600,19200. Auch mit 19200 Baud laeuft er noch zuverlaessig.
Man sollte allerdings ein Handshaking verwenden.
5. Zeile: Telefonnummer der anzurufenden Site
6. Zeile: Nametrigger
7. Zeile: eigener Username
8. Zeile: Passwordtrigger
9. Zeile: eigenes Passwort
10. Zeile: UUCP-Spooldirectory der anrufenden bzw. anzurufenden Site
11. Zeile: Spooldirectory fuer eingehende Messages (mqueue)
12. Zeile: Zeit wann eine andere Site angerufen werden darf, oder ANY oder
WAITFORCALL, wenn man angerufen wird
13. Zeile: Logfile
14. Zeile: Anzahl der Redials
15. Zeile: Debugginglevel (0-9) (optional)
16. Zeile: uucppublic - Directory (optional)
17. Zeile: *****OVERHEAD**** (optional)
18. Zeile: 'e' oder 'E' - UUCP E-Protokoll aktivieren (optional)
Es werden natuerlich nicht immer alle Zeilen ausgewertet. Z.B. bei
eingehenden Anrufen sind die Zeilen 5, 6, 7, 8, 9 und 14 nicht notwendig.
Es sollte ein symbolischer Wert oder eine leere Zeile erzeugt werden.
Die Direktories in Zeile 10 und 11 sollten mit einem Backslash enden.
Das Handshaking beim UUCP Start
-----------------------------------
Zum Debuggen eines Link ist manchmal eine genauere Kenntnis der Handshaking-
Phase notwendig (besonders wenn man sich an einen "exotischen" Unix Rechner
anschliessen will). Der UUCICO liefert hierzu meist nur wenig hilfreiche
Fehlermeldungen, da er nur auf eine erfolgreiche Antwort wartet bzw. sich
ueber ihr Fehlen beschwert. Fehlermeldungen werden nicht erkannt.
Aus diesem Grund folgt eine Beschreibung des Handshaking _mit_ den
moeglichen Fehlermeldungen und ihrer Bedeutung.
Master (Anrufer) Slave (Angerufener) Bemerkung
================ =================== =========
Shere=<slavename> "=slavename" ist optional.
slavename sind die 8 ersten
Zeichen des Sitenamen.
S<mastername> -Q0 -x0 "-Q0" gibt an, dass die keine
Kontrolle der sequencenumber
stattfinden soll. "-x0" gibt
das Debugginglevel an. Bei x9
wird auch beim Slave proto-
kolliert. Ist bei uns nur
unvollstaendig implementiert.
ROK Der Anrufer wird akzeptiert.
oder
RLCK Das Account ist "locked". Der
Master kommuniziert schon auf
einem anderen Port.
oder
RCB Call-back required. Der Slave
ruft zur Ueberpruefung zurueck.
oder
RBADSEQ Falsche "sequencenumber".
oder
RLOGIN Kein Login-Eintrag fuer diesen
Master vorhanden.
oder
RYou are unknown to me Unbekannter Master.
P<protos> protos ist die Liste der
unterstuetzten Protokolle.
(z.B. "Pg", "Pge").
U<proto> Der Master sucht sich das
Protokoll proto aus
("Ug" oder "Ue")
oder
UN Kein gemeinsames Protokoll.
Ab hier beginnt die Uebertragung der Daten und des UUCP Protokolls
im vereinbarten Format.